//package com.freeman.cement.controller;
//
//import com.freeman.cement.entity.ResponseResult;
//import com.freeman.cement.entity.WorkSection;
//import com.freeman.cement.exception.AppException;
//import com.freeman.cement.exception.AppExceptionCodeMsg;
//import com.freeman.cement.mapper.WorksectionDao;
//import org.apache.commons.io.FilenameUtils;
//import org.apache.commons.lang3.RandomUtils;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.multipart.MultipartFile;
//
//import javax.annotation.Resource;
//import javax.servlet.http.HttpServletRequest;
//import java.io.File;
//import java.io.IOException;
//
//
//
////文件上传
//@Controller
//@RequestMapping("/upload")
//public class UploadController {
//    @Resource
//    private WorksectionDao worksectionDao;
//
//    /**
//     * 默认图标上传地址
//     */
//    private static final String FILE_SAVE_PATH = "/static/icon";
//
//
//    /**
//     * 在jar包程序中，因为没有"/static/icon"文件夹，所以需要使用路径转发，下面的程序在ssm网站中可以使用
//     */
//    /**
//     * 专业图标上传
//     * @param file
//     * @param request
//     * @return
//     */
//    @RequestMapping("/worksectionIcon")
//    @ResponseBody
//    public ResponseResult savepic(@RequestParam int worksectionId, @RequestParam MultipartFile file, HttpServletRequest request) {
//        //工段判断
//        if(!(worksectionId > 0)){
//            throw new AppException(AppExceptionCodeMsg.ID_IS_NULL);
//        }
//        WorkSection orgin = worksectionDao.selectById(worksectionId);
//        if(orgin == null){
//            throw new AppException(AppExceptionCodeMsg.ID_NOT_EXISTS);
//        }
//
//        // 判断文件是否为空，空则返回失败页面
//        if (file.isEmpty()) {
//            throw new AppException(AppExceptionCodeMsg.FILE_IS_NULL);
//        } else {
//            //获取原文件名
//            String oldFileName = file.getOriginalFilename();
//            //获取原文件名的后缀
//            String prefix = FilenameUtils.getExtension(oldFileName);
//
//            int filesize = 10485760;
//            if (file.getSize() > filesize) {
//                throw new AppException(50023, "上传失败，图标大小应当小于10M");
//            } else {
//                if (prefix.equalsIgnoreCase("jpg")
//                        || prefix.equalsIgnoreCase("jpeg")
//                        || prefix.equalsIgnoreCase("png")
//                        || prefix.equalsIgnoreCase("ico")
//                        || prefix.equalsIgnoreCase("pneg")) {
//
//                    //设置，当前系统时间+随机数+"_personal.jpg"，为新的文件名;
//                    //RandomUtils.nextInt(0,1000000):0到一百万的随机数
//                    String fileName = System.currentTimeMillis()
//                            + RandomUtils.nextInt(0, 1000000)
//                            + "_worksection."
//                            + prefix;
//
//                    // 获取文件存储路径（绝对路径）
//                    // 网站使用相对路径即可，使用绝对路径存储，使用相对路径返回
//                    //并配置相对路径访问
//                    //String path = request.getServletContext().getRealPath("/WEB-INF/static/icon");
//                    String path = request.getServletContext().getRealPath(FILE_SAVE_PATH);
//
//                    File targetFile = new File(path, fileName); //新建文件对象
//                    //判断是否有此文件
//                    if (!targetFile.exists()) {
//                        //文件不存在就创建
//                        targetFile.mkdirs();
//
//                        try {
//                            //接收用户上传文件流,输出到指定文件里去
//                            file.transferTo(targetFile);
//                        } catch (IOException e) {
//                            e.printStackTrace();
//                            request.setAttribute("uploadFileError", "上传失败");
//                            throw new AppException(50024, "上传失败，写入文件出错");
//                        }
//                        //图片绝对路径
//                        //String picPath = path + File.separator + fileName;
//                        //图片相对路径
//                        //String picPath = "/static/icon"+ File.separator + fileName;
//                        String picPath = FILE_SAVE_PATH + "/" + fileName;
//
//                        //然后把picPath路径值保存在数据库
//                        WorkSection worksection = new WorkSection();
//                        worksection.setId(orgin.getId());
//                        worksection.setIcon(picPath);
//                        int rslt = worksectionDao.updateById(worksection);
//                        if(rslt > 0){
//                            return ResponseResult.success("图标上传成功", null);
//                        } else {
//                            throw new AppException(AppExceptionCodeMsg.UPDATE_WORKSECTION_ERROR);
//                        }
//                    } else {
//                        throw new AppException(50026, "上传失败，文件名写入异常");
//                    }
//                } else {
//                    throw new AppException(50025, "上传图片格式不正确，需要使用.jpg/.jpeg/.ico/.png/.pneg文件");
//                }
//            }
//        }
//    }
//
//
//}
